8、k倍区间
题目 k倍区间
思路分析
前面前缀和 双指针很容易想得到
然后要是负整数倍 所以做的时候直接把小于0的情况给判断掉了
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int a[N],s[N];
int n,k;
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
s[i]=s[i-1]+a[i];
}
int cnt=0;
for(int l=1;l<=n;l++){
for(int r=l;r<=n;r++){
int x=s[r]-s[l-1];
if(x>=0 && x%k==0){
cnt++;
}
}
}
cout<<cnt;
return 0;
}
但好像不是想象的那么简单
正解要用到取余的一些性质 具体参照y总改编的那个k被区间吧 K倍区间
考试的时候 也没数据测 都不知道这个方法会错 只能拿到两个案例的4分
代码实现
同类题型
视频讲解
⬅️ 7、全球变暖 🏠 00-刷题理模型 ➡️ 第八届 c++ B组 省赛
💬 评论